+>!`::
+>!~:: {
+ ihA := InputHook("L1", dkEndKeys)
+ ihA.Start()
+ ihA.Wait()
+
+ ihB := InputHook("L1", dkEndKeys)
+ ihB.Start()
+ ihB.Wait()
+
+ if (ihA.Input == "c") {
+ if dkCircumflex.Has(ihB.Input)
+ Send dkCircumflex[ihB.Input]
+ }
+ else if (ihA.Input == "v") {
+ if dkCaron.Has(ihB.Input)
+ Send dkCaron[ihB.Input]
+ }
+ else if (ihA.Input == ".") {
+ if dkDotAbove.Has(ihB.Input)
+ Send dkDotAbove[ihB.Input]
+ }
+ else if (ihA.Input == "o") {
+ if dkRingAbove.Has(ihB.Input)
+ Send dkRingAbove[ihB.Input]
+ }
+ else if (ihA.Input == "-") {
+ if dkMacronStroke.Has(ihB.Input)
+ Send dkMacronStroke[ihB.Input]
+ }
+ else if (ihA.Input == "_") {
+ if dkMacronStrokeAdd.Has(ihB.Input)
+ Send dkMacronStrokeAdd[ihB.Input]
+ }
+ else if (ihA.Input == "/") {
+ if dkStroke.Has(ihB.Input)
+ Send dkStroke[ihB.Input]
+ }
+ else if (ihA.Input == ",") {
+ if dkCedillaOgonek.Has(ihB.Input)
+ Send dkCedillaOgonek[ihB.Input]
+ }
+ else if (ihA.Input == "b") {
+ if dkBreveSpecial.Has(ihB.Input)
+ Send dkBreveSpecial[ihB.Input]
+ }
+ else if (ihA.Input == "B") {
+ if dkInvertedBreve.Has(ihB.Input)
+ Send dkInvertedBreve[ihB.Input]
+ }
+ else if (ihA.Input == "'") {
+ if dkAcuteAccent.Has(ihB.Input)
+ Send dkAcuteAccent[ihB.Input]
+ }
+ else if (ihA.Input == chr(34)) {
+ if dkDiaeresis.Has(ihB.Input)
+ Send dkDiaeresis[ihB.Input]
+ }
+ else if (ihA.Input == "=") {
+ if dkDoubleAcute.Has(ihB.Input)
+ Send dkDoubleAcute[ihB.Input]
+ }
+ else if (ihA.Input == "``") {
+ if dkGraveAccent.Has(ihB.Input)
+ Send dkGraveAccent[ihB.Input]
+ }
+ else if (ihA.Input == "G") {
+ if dkDoubleGrave.Has(ihB.Input)
+ Send dkDoubleGrave[ihB.Input]
+ }
+ else if (ihA.Input == "~") {
+ if dkTilde.Has(ihB.Input)
+ Send dkTilde[ihB.Input]
+ }
+ else if (ihA.Input == "h") {
+ if dkHook.Has(ihB.Input)
+ Send dkHook[ihB.Input]
+ }
+ else if (ihA.Input == "H") {
+ if dkHorn.Has(ihB.Input)
+ Send dkHorn[ihB.Input]
+ }
+ else if (ihA.Input == "t") {
+ if dkTurned.Has(ihB.Input)
+ Send dkTurned[ihB.Input]
+ }
+ else if (ihA.Input == "$") {
+ if dkCurrency.Has(ihB.Input)
+ Send dkCurrency[ihB.Input]
+ }
+ else if (ihA.Input == "g") {
+ if dkGreekAlphabet.Has(ihB.Input)
+ Send dkGreekAlphabet[ihB.Input]
+ }
+ else if (ihA.Input == "p") {
+ if dkSuperscript.Has(ihB.Input)
+ Send dkSuperscript[ihB.Input]
+ }
+ else if (ihA.Input == "u") {
+ if dkSubscript.Has(ihB.Input)
+ Send dkSubscript[ihB.Input]
+ }
+ else if (ihA.Input == " ") {
+ if dkSpace.Has(ihB.Input)
+ Send dkSpace[ihB.Input]
+ }
+ else if (ihA.Input == "q") {
+ if dkQuad.Has(ihB.Input)
+ Send dkQuad[ihB.Input]
+ }
+ else if (ihA.Input == "a") {
+ if dkArrow.Has(ihB.Input)
+ Send dkArrow[ihB.Input]
+ }
+ else if (ihA.Input == "s") {
+ if dkSymbols.Has(ihB.Input)
+ Send dkSymbols[ihB.Input]
+ }
+ else if (ihA.Input == "S") {
+ if dkPlayingCardSuit.Has(ihB.Input)
+ Send dkPlayingCardSuit[ihB.Input]
+ }
+ else if (ihA.Input == "1") {
+ if dkOne.Has(ihB.Input)
+ Send dkOne[ihB.Input]
+ }
+ else if (ihA.Input == "2") {
+ if dkTwo.Has(ihB.Input)
+ Send dkTwo[ihB.Input]
+ }
+ else if (ihA.Input == "3") {
+ if dkThree.Has(ihB.Input)
+ Send dkThree[ihB.Input]
+ }
+ else if (ihA.Input == "4") {
+ if dkFour.Has(ihB.Input)
+ Send dkFour[ihB.Input]
+ }
+ else if (ihA.Input == "5") {
+ if dkFive.Has(ihB.Input)
+ Send dkFive[ihB.Input]
+ }
+ else if (ihA.Input == "7") {
+ if dkSeven.Has(ihB.Input)
+ Send dkSeven[ihB.Input]
+ }
+ else if (ihA.Input == "0") {
+ if dkZero.Has(ihB.Input)
+ Send dkZero[ihB.Input]
+ }
+ else if (ihA.Input == "m") {
+ if dkMathSymbols.Has(ihB.Input)
+ Send dkMathSymbols[ihB.Input]
+ }
+ else if (ihA.Input == "A") {
+ if dkCapitalA.Has(ihB.Input)
+ Send dkCapitalA[ihB.Input]
+ }
+ else if (ihA.Input == "d") {
+ if dkSmallD.Has(ihB.Input)
+ Send dkSmallD[ihB.Input]
+ }
+ else if (ihA.Input == "D") {
+ if dkCapitalD.Has(ihB.Input)
+ Send dkCapitalD[ihB.Input]
+ }
+ else if (ihA.Input == "i") {
+ if dkSmallI.Has(ihB.Input)
+ Send dkSmallI[ihB.Input]
+ }
+ else if (ihA.Input == "I") {
+ if dkCapitalI.Has(ihB.Input)
+ Send dkCapitalI[ihB.Input]
+ }
+ else if (ihA.Input == "O") {
+ if dkCapitalO.Has(ihB.Input)
+ Send dkCapitalO[ihB.Input]
+ }
+ else if (ihA.Input == "T") {
+ if dkCapitalT.Has(ihB.Input)
+ Send dkCapitalT[ihB.Input]
+ }
+ else if (ihA.Input == "n") {
+ if dkSmallN.Has(ihB.Input)
+ Send dkSmallN[ihB.Input]
+ }
+ else if (ihA.Input == "N") {
+ if dkCapitalN.Has(ihB.Input)
+ Send dkCapitalN[ihB.Input]
+ }
+ else if (ihA.Input == "p") {
+ if dkSmallP.Has(ihB.Input)
+ Send dkSmallP[ihB.Input]
+ }
+ else if (ihA.Input == "P") {
+ if dkCapitalP.Has(ihB.Input)
+ Send dkCapitalP[ihB.Input]
+ }
+ else if (ihA.Input == "r") {
+ if dkSmallR.Has(ihB.Input)
+ Send dkSmallR[ihB.Input]
+ }
+ else if (ihA.Input == "*") {
+ if dkAsterisk.Has(ihB.Input)
+ Send dkAsterisk[ihB.Input]
+ }
+ else if (ihA.Input == "!") {
+ if dkExclam.Has(ihB.Input)
+ Send dkExclam[ihB.Input]
+ }
+ else if (ihA.Input == "?") {
+ if dkQuestion.Has(ihB.Input)
+ Send dkQuestion[ihB.Input]
+ }
+ else if (ihA.Input == "(") {
+ if dkParenLeft.Has(ihB.Input)
+ Send dkParenLeft[ihB.Input]
+ }
+ else if (ihA.Input == "+") {
+ if dkPlus.Has(ihB.Input)
+ Send dkPlus[ihB.Input]
+ }
+ else if (ihA.Input == "%") {
+ if dkPercent.Has(ihB.Input)
+ Send dkPercent[ihB.Input]
+ }
+ else if (ihA.Input == "8") {
+ if dkEight.Has(ihB.Input)
+ Send dkEight[ihB.Input]
+ }
+ else if (ihA.Input == "<") {
+ if dkLessThan.Has(ihB.Input)
+ Send dkLessThan[ihB.Input]
+ }
+ else if (ihA.Input == ">") {
+ if dkGreaterThan.Has(ihB.Input)
+ Send dkGreaterThan[ihB.Input]
+ }
+ else if (ihA.Input == "[") {
+ if dkBracketLeft.Has(ihB.Input)
+ Send dkBracketLeft[ihB.Input]
+ }
+ else if (ihA.Input == "]") {
+ if dkBracketRight.Has(ihB.Input)
+ Send dkBracketRight[ihB.Input]
+ }
+ else if (ihA.Input == "U") {
+ if dkCapitalU.Has(ihB.Input)
+ Send dkCapitalU[ihB.Input]
+ }